getForEntity
getForEntity(String url, Class responseType, Object… urlVariables)
url : 请求的地址
responseType : 响应体 body 的包装类型
urlVariables : 参数数组,用于替换 url 中占位符对用的参数
1 | "/get-for-entity-01") (value = |
而使用参数数组的方式需要在url中指定占位符,占位符中的顺序即参数在数组中的索引:1
2
3
4
5
6
7
8
9"/get-for-entity-02") (value =
public String getForEntity02() {
ResponseEntity<String> responseEntity =
restTemplate.getForEntity(
"http://DEMO-REST-TEMPLATE-PROVIDER-EUREKA-CLIENT/user/name?userId={1}",
String.class,
"1");
return responseEntity.getBody();
}
支持字符串方式返回响应对象体:1
2
3
4
5
6
7
8
9"/get-for-entity-03") (value =
public String getForEntity03() {
ResponseEntity<String> responseEntity =
restTemplate.getForEntity(
"http://DEMO-REST-TEMPLATE-PROVIDER-EUREKA-CLIENT/user?userId={1}",
String.class,
"1");
return responseEntity.getBody();
}
支持对象方式返回响应体(SpringMVC 会将对象序列化为JSON):1
2
3
4
5
6
7
8
9
public User getForEntity04() {
ResponseEntity<User> responseEntity =
restTemplate.getForEntity(
"http://DEMO-REST-TEMPLATE-PROVIDER-EUREKA-CLIENT/user?userId={1}",
User.class,
"1");
return responseEntity.getBody();
}
getForEntity(String url, Class responseType, Map urlVariables)
该方式是将请求参数封装进 Map :1
2
3
4
5
6
7
8
9
10
11@RequestMapping(value = "/get-for-entity-05")
public String getForEntity05() {
Map<String, String> params = new HashMap<>(8);
params.put("userId", "1");
ResponseEntity<String> responseEntity =
restTemplate.getForEntity(
"http://DEMO-REST-TEMPLATE-PROVIDER-EUREKA-CLIENT/user/name?userId={userId}",
String.class,
params);
return responseEntity.getBody();
}
getForEntity(URI uri, Class responseType)
该方式是以构建URI的方式传递请求参数:1
2
3
4
5
6
7
8
9
10
11"/get-for-entity-06") (value =
public String getForEntity06() {
UriComponents uriComponents = UriComponentsBuilder.fromUriString(
"http://DEMO-REST-TEMPLATE-PROVIDER-EUREKA-CLIENT/user/name?userId={userId}")
.build()
.expand("1")
.encode();
URI uri = uriComponents.toUri();
ResponseEntity<String> responseEntity = restTemplate.getForEntity(uri, String.class);
return responseEntity.getBody();
}
getForObject
getForObject 是对 getForEntity 的进一步封装,自动对请求响应 body 内容进行对象转换。
getForObject(String url, Class responseType, Object… urlVariables)
1 | "/get-for-object-01") (value = |
getForObject(String url, Class responseType, Map urlVariables)
1 | @RequestMapping(value = "/get-for-object-02") |
getForObject(URI url, Class responseType)
1 | "/get-for-object-03") (value = |
一般直接在 url 中组合参数或者使用 getForObject(String url, Class responseType, Map urlVariables)